<template>
  <div class="box4" ref="map">我是地图组件</div>
</template>

<script setup lang="ts">
import { ref, onMounted } from 'vue';
import * as echarts from 'echarts';
//引入中国地图的JSON数据
import chinaJSON from './china.json';
//获取DOM元素
let map = ref();
//注册中国地图
echarts.registerMap('china', chinaJSON as any);
onMounted(() => {
  let mychart = echarts.init(map.value);
  //设置配置项
  mychart.setOption({
    //地图组件
    geo: {
      map: 'china', //中国地图
      roam: true, //允许鼠标缩放
      //地图位置
      left: 150,
      top: 150,
      right: 150,
      zoom: 1.2,
      bottom: 0,
      //地图上文字位置
      label: {
        show: true, //文字显示
        color: 'white',
        fontSize: 14,
      },
      //每块的样式
      itemStyle: {
        color: {},
        opacity: 0.8,
      },
    },

    grid: {
      left: 0,
      top: 0,
      right: 0,
      bottom: 0,
    },

    series: [
      {
        type: 'lines', //航线的系列
        data: [
          {
            coords: [
              [116.405285, 39.904989], // 起点
              [119.306239, 26.075302], // 终点
            ],
            // 统一的样式设置
            lineStyle: {
              color: 'orange',
              width: 5,
            },
          },
          {
            coords: [
              [116.405285, 39.904989], // 起点
              [114.298572, 30.584355], // 终点
            ],
            // 统一的样式设置
            lineStyle: {
              color: 'yellow',
              width: 5,
            },
          },
        ],
        //开启动画特效
        effect: {
          show: true,
          symbol: 'arrow', //特效图形的标记
          color: 'black',
          symbolSize: 10, //标记大小
        },
      },
    ],
  });
});
</script>

<style lang="scss" scoped></style>
